package cn.tm.ms.nerver.strategy.support;

import cn.tm.ms.nerver.neural.entry.NeuralConf;
import cn.tm.ms.nerver.strategy.StrategyHandler;
import cn.tm.ms.nerver.strategy.IStrategy;
import cn.tm.ms.nerver.strategy.entry.StrategyDo;

/**
 * 3.失败保护(Failsafe)<p>
 * 失败安全，出现异常时，直接忽略<p>
 * 通常用于写入审计日志等操作<p>
 * 
 * @author lry
 *
 * @param <REQ>
 * @param <RES>
 */
public class Failsafe<REQ, RES> implements IStrategy<REQ, RES> {

	@Override
	public RES execute(StrategyDo<REQ, RES> ftDo) {
		try {
			ftDo.setConf(new NeuralConf(1.0, 0, 0, true, true,true));//失败调用mock来保护完成
			StrategyHandler<REQ, RES> handler=new StrategyHandler<REQ, RES>();
			return handler.execute(ftDo);
		} catch (Throwable t) {
			t.printStackTrace();
		}
		return null;
	}

}
